package com.yuan.order.dataobject;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.yuan.order.enums.ProductStatusEnum;
import com.yuan.order.utils.EnumUtils;
import lombok.Data;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 商品实体类
 *
 * @Author yuan
 * @Date 2021/1/22 16:19
 */
@Entity
@Data
@DynamicInsert
@DynamicUpdate
public class ProductInfo {
    @Id
    private String productId;
    /**
     * 商品名称
     */
    private String productName;
    /**
     * 描述
     */
    private String productDescription;
    /**
     * 小图
     */
    private String productIcon;
    /**
     * 类目编号
     */
    private Integer categoryType;
    /**
     * 商品单价
     */
    private BigDecimal productPrice;
    /**
     * 商品状态
     */
    private Integer productStatus = ProductStatusEnum.UP.getCode();
    /**
     * 库存
     */
    private Integer productStock;
    /**
     * 创建时间
     */
    @Column(updatable = false)
    private Date createTime;
    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 获取商品在架状态
     *
     * @Author yuan
     * @Date 2021/2/25 16:27
     */
    @JsonIgnore
    public ProductStatusEnum getProductStatusEnum() {
        return EnumUtils.getByCode(productStatus, ProductStatusEnum.class);
    }

}
